﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Clases.Clases;
using AccesoBD;
using Clases.Estructuras;
using System.Data.Sql;
using System.Data.SqlClient;
using System.Data;

namespace Clases.ClasesPersistentes
{
    public class DaoRol
    {
        public  List<StrRol> listarRoles()
        {
            StrRol tmpRol = new StrRol();
            List<StrRol> listaRoles = new List<StrRol>();
            try
            {
                string cmdText = "SELECT nombre FROM trol;";
                AccesoBD.DBAccess acceso = new DBAccess();
                SqlDataReader reader = acceso.ejecutarSelect(cmdText, null);
                
                while (reader.Read())
                {
                    tmpRol.nombre = reader.GetValue(0).ToString();
                    listaRoles.Add(tmpRol);

                }
                reader.Close();
                return listaRoles;
            }
            catch (SqlException e)
            {
                throw e;
            }
        }

        public void insertarRol(Rol prol)
        {
            List<Parametros> parametros = new List<Parametros>();

            Parametros tmp01 = new Parametros("nombre", prol.nombre);

            string cmdText = "INSERT INTO trol (nombre)" + "VALUES (@nombre);";

            parametros.Add(tmp01);

            DBAccess acceso = new DBAccess();

            acceso.ejecutarSQL(cmdText, parametros);

        }


        public void modificarRol(Rol prol)
        {
            List<Parametros> parametros = new List<Parametros>();

            Parametros tmp01 = new Parametros("nombre", prol.nombre);

            string cmdText = "UPDATE trol" +
                              "SETnombre=@nombre)" +
                              "WHERE id_rol='" + prol.idRol + "';";

            parametros.Add(tmp01);

            AccesoBD.DBAccess acceso = new DBAccess();

            acceso.ejecutarSQL(cmdText, parametros);

        }
        public Rol buscar(String pnombre)
        {
            Rol tmpRol = new Rol();
            try
            {
                String cmdText;
                cmdText = "SELECT id_rol, nombre FROM trol WHERE nombre = @valor01";
                Parametros tmpParametro;
                List<Parametros> parametros;
                parametros = new List<Parametros>();
                tmpParametro = new Parametros("@valor01", pnombre);
                parametros.Add(tmpParametro);
                //DaoObject.crearConexion(Properties.Resources.conexionStr);
                AccesoBD.DBAccess acceso = new DBAccess();
                SqlDataReader reader = acceso.ejecutarSelect(cmdText, parametros);

                //recorror el data reader para ir creando las estructuras y agregarlas a la coleccion
                while (reader.Read())
                {
                    tmpRol.idRol = (int)reader.GetValue(0);
                    tmpRol.nombre = reader.GetValue(1).ToString();
                    
                }
                reader.Close();
                return tmpRol;
            }
            catch (SqlException e)
            {
                throw e;
            }
        }
    }
}